Skip to content

Conversation

@oech3
Copy link
Contributor

@oech3 oech3 commented Dec 14, 2025

内容

  1. .AppImageの7z圧縮をやめる。また、大きなファイルがユーザーのディスクに現れないよう直接結合する。
  2. 1.およびGitHubに合わせて結合したファイルのsha256sumだけ保持する。
  3. アーカイブリストファイルの解析が大変なので、簡単のためにファイルサイズを消す。サイズ上界を与えるために分割数を埋め込む(本当はチェックサムも埋めたい)

関連 Issue

close #2845
close #2863
ref #2862

@voicevox-preview-pages
Copy link

🚀 プレビュー用ページを作成しました 🚀

更新時点でのコミットハッシュ:19f3f1f

@Hiroshiba
Copy link
Member

Hiroshiba commented Dec 23, 2025

遅くなりました、すみません!

ちょっと見させてもらった感じ結構問題がありそうなのと、関心事がいっぱいあるとレビューもすぐできないので、申し訳ないのですがPRを分けてください 🙇
もっと慣れてきたら一緒にしても良いかもなのですが、指摘ポイントが多い不慣れなうちは申し訳ないのですが小さく進められると助かります!!

とりあえず(AI君が)発見した問題点候補はこんな感じです。
全部が全部直してほしいわけじゃないかもしれないので一旦これはさておいて、とりあえずPR分けて頂ければと・・・!

正しさ

- installer_linux.template.sh 94行目: sha256sumの出力形式不一致で比較が常に失敗する
  - 原因: sha256sumは<hash>  <filename>形式で出力する(例: abc123...  file.AppImage)が、cat shaはハッシュ値のみ。文字列として常に不一致となり、毎回ダウンロードが実行される
  - 修正案: $(sha256sum "${NAME}.AppImage" | cut -d ' ' -f 1) でハッシュ部分のみを抽出
  - 【問題度 5】
  - 【自信度 5】

- installer_linux.template.sh 101行目: チェックサム検証ロジックが逆
  - 原因: [ A != B ] || error_exit は「AとBが等しい場合にエラー終了」という意味になる。意図は「AとBが異なる場合にエラー終了」のはず
  - 修正案: [ "$(cat sha)" = "$(sha256sum "${NAME}.AppImage" | cut -d ' ' -f 1)" ] || { echo "Checksum mismatch. Please retry."; exit 1; }
  - 【問題度 5】
  - 【自信度 5】

- installer_linux.template.sh 172行目: 未定義変数ARCHIVE_NAME_LISTの参照
  - 原因: 旧ロジックで定義されていたARCHIVE_NAME_LIST配列が削除されたが、168-176行目の「Remove archives」セクションで参照が残っている。set -u(nounset)により未定義変数参照でスクリプトがエラー終了する
  - 修正案: 168-176行目のセクション全体を削除
  - 【問題度 5】
  - 【自信度 5】

- installer_linux.template.sh 179-180行目: 存在しないlist.txtの削除処理
  - 原因: 新ロジックではlist.txtを作成しないが、削除処理が残っている。rm -fなのでエラーにはならないが不要なコード
  - 修正案: この2行を削除
  - 【問題度 1】
  - 【自信度 5】

- installer_linux.template.sh 97-98行目: 分割数10以上で不整合
  - 原因: ${NAME}.AppImage.0${s}のパターンでは、s=10のとき.010となる。しかしbuild.ymlのsplit -dは2桁サフィックス(.10)を生成するため不一致。現実的には1900MB×10=19GB以上のAppImageは想定されないが、潜在的バグ
  - 修正案: printf "%02d" $sを使用して2桁に固定
  - 【問題度 3】
  - 【自信度 5】

一貫性

- 変数のクォート処理が不統一
  - 原因: 94, 95, 98, 101, 105行目で${NAME}.AppImageがクォートなしで使用されているが、他の箇所(例: 106行目 "${APPIMAGE}")ではクォートあり
  - 修正案: "${NAME}.AppImage"のようにダブルクォートで囲む
  - 【問題度 2】
  - 【自信度 5】

可読性・保守性

- installer_linux.template.sh 8-16行目: _readarray関数が不要
  - 原因: 新ロジックでは使用されていないが、関数定義が残っている
  - 修正案: 関数定義を削除
  - 【問題度 1】
  - 【自信度 5】
  
- installer_linux.template.sh 38-40行目: 未使用変数定義の残存
  - 原因: KEEP_ARCHIVE, REUSE_LIST, SKIP_VERIFYは新ロジックで使用されていないが定義が残っている。ただしKEEP_ARCHIVEは168行目で参照されている(そのセクション自体が削除対象だが)
  - 修正案: 168-176行目削除後、これらの変数定義も削除
  - 【問題度 1】
  - 【自信度 5】

@oech3 oech3 marked this pull request as draft December 23, 2025 03:38
@oech3 oech3 changed the title AppImageの7z圧縮をやめる,ファイル名を一貫性させる,チェックサムを簡素化 (要PR分割)AppImageの7z圧縮をやめる,ファイル名を一貫性させる,チェックサムを簡素化 Dec 23, 2025
@oech3
Copy link
Contributor Author

oech3 commented Jan 14, 2026

多分#2895 で破綻

@oech3 oech3 closed this Jan 14, 2026
@oech3 oech3 deleted the no-7zip branch January 18, 2026 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants